Unless otherwise indicated herein, the information described in this section is not admitted to be prior art by inclusion in this section.
In general, an application running on a computing device may be defined by one or more locally stored code modules that are executable by a processing unit to carry out particular functions, such as to present application content in various pages or “views” at a user interface and to enable a user of the device to navigate from one such view to another. In practice, such an application may programmatically define and/or locally store each view in whole or in part. Consequently, as the user navigates from one view to another during execution of the application, the processing unit may readily transition between the views, providing a seamless user experience.
From an application developer standpoint, however, one problem with such applications is they tend to have relatively long update-release cycles. In particular, once an application has been installed on a computing device, if a developer updates the application, it may take on the order of weeks for that update to reach the device. A reason for this delay is that application updates are often distributed through online application stores that impose time-consuming certification processes before allowing publication of updates. Further, even after an update has been published, it may be quite some time before a user's computing device checks for, downloads, and installs the update, or the user may choose to not install the update.
When developing an application, one way to help avoid or minimize this delay problem is to incorporate into the application one or more embedded web views. In particular, the developer may programmatically incorporate into the application a web view controller that is arranged to download and render web pages in much the same way that a conventional web browser does. By invoking the web view controller, the application may therefore present application content in one or more web pages rather than presenting that content in one or more native application views. Conveniently with this arrangement, the developer may then quickly update an application installed on a computing device by simply changing one or more web pages or associated objects on a web server and causing the web view controller to download the updated web pages or objects. Advantageously, the update-release cycle for such pages can thus be on the order of mere minutes, rather than weeks.
Unfortunately, however, application developers may tend to avoid using embedded web views like this, because of difficulty in making the user experience as good as with a purely native application. One issue with use of embedded web views, for instance, is that when a native application calls a web view controller to present a web page, there could be a significant delay as the web view controller then works to download and render the web page. This is especially the case with mobile wireless devices, such as cellular phones or tablet computers for instance, due to latency in wireless communications. Further, even if the web view controller had previously cached a copy of the web page in local data storage, the web view controller may still need to download particular instance data, such as relevant images or other information, to render as part of the web page for presentation to the user.
From a user perspective, this delay in loading web views may be troubling, especially if the application also presents some native application views, since the application may quickly transition to present the native application views but may then seem sluggish as it transitions to present a web view. Furthermore, as an application transitions between native views and web views, the user might not know that some views are native views and others are web views. Therefore, the user may not understand why there is an inconsistency in the speed of transition to various views of the application. Overall, this inconsistency and delay may provide for a poor user experience. Consequently, an improvement is desired.